const { createEditor, createToolbar } = window.wangEditor;
const toolbarConfig = {
    excludeKeys: [
        'group-video'
    ]
};
const editorConfig = {
    placeholder: '请输入内容...',
    onChange(editor) {
        const descEl = document.getElementById('description');
        const plainEl = document.getElementById('plainText');
        //将元素同步到隐藏的text中以便上传，增加非空判断避免导致错误
        if (descEl) descEl.value = editor.getHtml();
        if (plainEl) plainEl.value = editor.getText(); // 只有元素存在时才执行
    },
    MENU_CONF:{
        uploadImage: {
            server: '/upload-image',

            // form-data fieldName ，默认值 'wangeditor-uploaded-image'
            fieldName: 'image',

            // 单个文件的最大体积限制，默认为 2M
            maxFileSize: 3 * 1024 * 1024,

            // 最多可上传几个文件，默认为 100
            maxNumberOfFiles: 100,

            // 选择文件时的类型限制，默认为 ['image/*'] 。如不想限制，则设置为 []
            allowedFileTypes: ['image/*'],

            // 将 meta 拼接到 url 参数中，默认 false
            metaWithUrl: false,

            // 跨域是否传递 cookie ，默认为 false
            withCredentials: true,

            // 超时时间，默认为 10 秒
            timeout: 10 * 1000,


            // 单个文件上传成功之后
            onSuccess(file, res) {
                console.log(`${file.name} 上传成功`, res);
                return res.url;
            },

            // 单个文件上传失败
            onError(file, res) {
                console.log(`${file.name} 上传失败`, res)
            },
        }
    }


};


document.addEventListener('DOMContentLoaded', function() {
    //延迟 50ms 确保 DOM 稳定（仅 Firefox 需要）
    setTimeout(() => {
        const descriptionElement = document.getElementById('description');
        let initialHtml = '<p><br></p>'; // 默认值
        if (descriptionElement) {
            initialHtml = descriptionElement.value || initialHtml;
        }
        const editor = createEditor({
            selector: '#editor-container',
            html: initialHtml,
            config: {
                ...editorConfig,
                extends: { useWeakMap: false } // Firefox 兼容
            },
            mode: 'default',
        });

        const toolbar = createToolbar({
            editor,
            selector: '#toolbar-container',
            config: toolbarConfig,
            mode: 'default',
        });
    }, 50);

});
